package com.taotao.search.service.impl;

import org.apache.solr.client.solrj.SolrQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.taotao.search.dao.SearchDao;
import com.taotao.search.pojo.SearchResult;
import com.taotao.search.service.SearchService;

@Service
public class SearchServiceImpl implements SearchService {
	
	//查询相关表格
	@Autowired
	private SearchDao searchDao;
	
	/***
	 * 查询
	 * @param queryString 查询条件字符串
	 * @param page 从page条记录开始查
	 * @param rows 查询的记录条数
	 * @return
	 * @throws Exception
	 */
	@Override
	public SearchResult search(String queryString, int page, int rows) throws Exception{
		//创建查询对象
		SolrQuery query = new SolrQuery();
		//设置查询条件
		query.setQuery(queryString);
		//设置分页
		query.setStart((page - 1) * rows);
		query.setRows(rows);
		//设置默认搜素域 ( 搜索域是在服务器的xml里面配置的)
		query.set("df","item_keywords");
		//设置高亮显示
		query.setHighlight(true);
		query.addHighlightField("item_title");
		query.setHighlightSimplePre("<em style=\"color:red \">");
		query.setHighlightSimplePost("</em>");
		//执行查询
		SearchResult searchResult = searchDao.search(query);
		//计算查询结果总页数
		long recordCount = searchResult.getRecordCount();//总记录数
		long pageCount = recordCount / rows;
		if(recordCount % rows > 0){
			pageCount++;//不能整除说明有余数,需要再加一页
		}
		searchResult.setPageCount(pageCount);//设置结果总页数
		searchResult.setCurPage(page);//当前页
		
		return searchResult;
	}

}
